A number of techniques have been proposed or suggested for determining whether or not a person is “present” at a given device. See, for example, Atkins et al., “Introducing Instant Messaging and Presence Into the Workplace,” Proc. of the Conf. on Human Factors in Computing Systems, Minneapolis, Minn., USA, ACM CHI 2002 (Apr. 20, 2002), downloadable from http://www.informatik.uni-trier.de/˜ley/db/conf/chi/chi2002.html. As friends and colleagues become more distributed in time or location (or both), it becomes even more desirable for a user to determine, prior to a given communication attempt, whether or not the intended recipient of the contemplated communication is currently available at one or more communication devices. The provided presence information allows a user to make a more informed decision about how to best communicate with another person. In this manner, productivity is enhanced by enabling a better selection of the best way to contact the other person. If the other person is present for a real time communication, for example, the user can choose a real time or near real time mode of communication, such as a telephone call or an instant message. Otherwise, the user can select a non-real time mode of communicating, such as an email message, voice mail message or a page. This informed choice leads to a more efficient, productive and cost effective communication.
Instant messaging systems, for example, such as those offered by America Online (AOL), typically provide a mechanism for determining whether a message recipient is present. The presence information allows the recipient of an instant message to determine, for example, whether the sender of the instant message is currently available to receive additional instant messages. The presence information is generally determined based on user login activity (e.g., whether the user is currently logged on to the AOL service). Presence information based solely on login activity, however, can grow stale over time, since a user may remain logged in to an application for several days at a time. Thus, many systems supplement the user login activity with other determinable user activity, such as such as keyboard or mouse activity and whether a user remains idle for a time period exceeding a specified interval. Thus, existing presence awareness systems can distinguish between a user who is connected to the service (present) or not connected to the service (absent), and most systems allow some sort of busy or unavailable flag to be set. For example, some presence awareness systems have been extended to allow a user to affirmatively provide a personalized text message indicating his or her current availability, such as “out to lunch,” or “in a meeting.”
While existing presence awareness systems allow a user to make a more informed decision about how to best communicate with an intended recipient, they suffer from a number of limitations, which if overcome, could further improve the ability of users to efficiently communicate. In many cases, a user will not have the time or forethought to constantly change his or her presence status on one or more devices. Moreover, it is sometimes hard to infer the presence status of a user on a given device. For example, an enterprise telephone user may have multiple telephone lines. If a user is on a telephone call and another line rings, the user can either put the first caller on hold and answer the second line, or just ignore the second line. In this situation, it is difficult to infer the user's presence status based on his or her actions with regard to the second call line. Even if device status can be specific, such as the send-all-call button on the telephone, many users will still not invoke that feature before leaving the office, for example, to go out to lunch. Rather, users will typically merely pick up their cell phone and leave the office. In this case, the telephone and cell phone both appear to be present.
A need therefore exists for methods and systems that can route a communication to a user based on a presence pattern. A further need exists for a method and apparatus for routing a communication to a user based on a predicted presence of the user at one or more communication devices. Yet another need exists for a method and apparatus that can detect presence patterns of a user over time.